1. Field of the Invention
The present invention relates generally to data processing systems and more particularly to a data processing system that includes physical adapters that have been virtualized. Still more specifically, the present invention relates to a computer-implemented method, apparatus, and computer usable program code in a data processing system where multiple host computer systems share multiple adapters and communicate with those adapters through a PCI switched-fabric bus for migrating virtual adapters from source physical adapters to destination physical adapters.
2. Description of the Related Art
A conventional PCI bus is a local parallel bus that permits expansion cards to be installed within a single computer system, such as a personal computer. PCI-compliant adapter cards can then be coupled to the PCI bus in order to add input/output (I/O) devices, such as disk drives or other devices, to the computer system. A PCI bridge/controller is needed in order to connect the PCI bus to the system bus of the computer system. The PCI bus can communicate, through the PCI bridge/controller with the CPU of the computer system in which the PCI bus is installed. Several PCI bridges may exist within a single computer system. However, these PCI bridges serve to couple multiple PCI buses to the CPU of the computer system in which the PCI buses are installed. If the single computer system includes multiple CPUs, the PCI buses can be utilized by the multiple CPUs of the single computer system.
A PCI Express (PCI-E) bus provides a migration path compatible with the PCI software environment. In addition to offering superior bandwidth, performance, and scalability in both bus width and bus frequency, PCI Express offers other advanced features. These features include QoS (quality of service), aggressive power management, native hot-plug, bandwidth per pin efficiency, error reporting, recovery and correction and innovative form factors, and meet the growing demands for sophisticated capabilities such as peer-to-peer transfers and dynamic reconfiguration. PCI Express also enables low-cost design of products via low pin counts and wires. A linearly scaled 16-lane PCI Express interconnect can provide data transfer rates of more than 8 Gigabytes per second.
The host computer system in a PCI Express computing environment typically has a PCI-to-Host bridging function commonly known as the root complex. The root complex bridges between a CPU bus such as hyper-transport and the PCI-E bus. Other functions may be performed in the root complex like address translation, if necessary. Multiple hosts containing one or more root functions are referred to as a multi-root system.
Today, PCI-E buses do not permit the sharing of PCI adapters among multiple separate computer systems. For example, a PCI adapter cannot be shared by multiple server computer systems. Thus, in existing computer systems that use a PCI bus, the physical I/O adapters cannot be shared by: a) a host operating system or guest operating system which is the sole owner of an I/O device, in the single root environment, or b) a single operating system or guest operating system which is the sole owner of an I/O device, in a multi-root environment. A single I/O device cannot be shared by multiple guest operating systems in the single root environment or by multiple guest operating systems on multiple hosts in the multi-root case.
Further, existing PCI environments do not permit the virtualization of physical I/O adapters. An I/O device cannot currently be virtualized in a standard PCI or a PCI Express data processing system. Because virtual I/O adapters cannot exist in known computer systems, known computer systems also do not permit the migration of a virtual I/O adapter from a source physical adapter to a destination physical adapter.
In known systems that do not utilize a PCI environment, a secondary physical adapter may be designated as a fail-over device for a primary physical adapter. In these systems, when the primary physical adapter fails, the secondary physical adapter is then utilized in place of the primary adapter. These systems, however, do not involve virtual adapters. In these systems, one physical device is used to replace a failed physical device. The entire primary physical adapter is replaced with the secondary physical adapter. There is no migration in these systems. There is a replacement of one device with another. Further, the replacement device, i.e. the secondary physical adapter, completely replaces the entire primary device, i.e. the primary physical adapter.
Therefore, a need exists for a computer-implemented method, apparatus, and computer usable program code for migrating virtual entities, also called virtual adapters, from source physical adapters to destination physical adapters in a data processing system where multiple host computer systems share multiple adapters and communicate with those adapters through a PCI switched-fabric bus.